﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Краткое описание - Dialog API</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="JavaScript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>Краткое описание - Dialog API</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">Dialog API</a>
</div>


<div class=shortdescr>
<p>DialogAPI выделен в отдельное API, для максимального контроля над созданным диалогом.
<p> Менеджер диалогов поддерживает только так называемые <b>Модальные Диалоги</b> (Modal Dialog).
Модальный диалог представляет собой окно, запрещающее пользователю взаимодействовать с любым
объектом FAR Manager вне данного диалога. Модальный диалог отсекает поток
сообщений, идущих от мыши или клавиатуры к другим объектам FAR Manager.
</div>

<h3>Подробности</h3>
<div class=descr>
Плагин полностью управляет поведением диалога:
<ul>
<li>диалог имеет функцию-обработчик, которая реагирует на массу событий,
    приходящих от Менеджера диалогов;
<li>функция-обработчик общается с Менеджером Диалогов путём посылки
    <a href="dmsg/index_dm.html">сообщений</a>, используя функцию
    <a href="../service_functions/senddlgmessage.html">SendDlgMessage</a>;
<li>функция-обработчик может передать управление Менеджеру Диалогов используя
    функцию <a href="../service_functions/defdlgproc.html">DefDlgProc</a>;
<li>окончанием обработки диалога управляет плагин.
</ul>
Если в обработчике диалога просто передать управление ядру посредством
функции <a href="../service_functions/defdlgproc.html">DefDlgProc</a>, то получим... простой, неуправляемый диалог
(такие же диалоги можно получить при вызове функции <a href="../service_functions/dialoginit.html">DialogInit</a> с параметром <var>DlgProc</var>, равным NULL):
<pre class=code>
// минимальный обработчик диалога
intptr_t WINAPI MyDlgProc(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void *Param2)
{
  return Info.DefDlgProc(hDlg,Msg,Param1,Param2);
}
</pre>
</div>


<p>Итак. Dialog API:</p>
<div class=descr>
<a href="index.html">Сервисные функции и cтруктуры</a><br>
<a href="../defs/index.html">Макросы и типы</a><br>
<a href="controls/index.html">Элементы диалога</a><br>
<a href="flags/index.html">Флаги элементов диалога</a><br>
<a href="dmsg/index_dn.html">События</a><br>
<a href="dmsg/index_dm.html">Сообщения</a><br>
</div>

<p>&nbsp;</p>

<div class=see>Смотрите также:</div><div class=seecont>
<a href="../exported_functions/index.html">Экспортируемые функции</a>,
<a href="../service_functions/index.html">Сервисные функции</a>,
<a href="../structures/index.html">Структуры</a>
</div>

</body>
</html>